#ifndef __qyscieditconfigurator__
#define __qyscieditconfigurator__

#include <QObject>
#include <QMap>
#include <QVariant>

class QScriptValue;

/*! \class QySciEditConfigurator
	\brief Конфигуратор для редактора текста QySciEdit.

	QySciEditConfigurator интерфейс конфигурирования радакторов типа QySciEdit из скрипта.

	Экземпляр QySciEditConfigurator регистрируется в интерпритаторе, после чего пользователь, может задавать различные свойства редактора для объекта возвращенного методом sciEdit, после настройки, объект возврященный sciEdit, необходимо передать в качестве аргумента в applySettings, для применения настроек.

	Например:

	\code

	var edit = sciEditConfigurator.sciEdit();

	edit.fore = "#000000";
	edit.back = "#ffffff";
	...

	sciEditConfigurator.applySettings(edit);

	\endcode

	Полный список параметров см. QyEditorBase.

*/

// Примечание: на данном этапе, метод sciEdit возвращает указатель на сам QySciEditConfigurator, по этому можно задавать свойства для самого QySciEditConfigurator и передавать в applySettings его самого. Но не факт что в процессе разработки это останется так как есть =).

class QySciEditConfigurator : public QObject {
	Q_OBJECT
public:
	QySciEditConfigurator( QObject * parent=0 ); //!< Конструктор

	Q_INVOKABLE QObject * sciEdit(); //!< получить объект для конфигурации

public slots:
	void applySettings( const QScriptValue & value ); //!< применить конфигурацию

};

#endif/*__qyscieditconfigurator__*/
